home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS12.ADF / AmigaBBS / voting (.txt) < prev    next >
AmigaBASIC Source Code  |  1986-08-05  |  8KB  |  194 lines

  1. Main:
  2. GOSUB Voting
  3. CHAIN "df0:Menus",20,ALL
  4.  
  5. Modem:
  6. IF rings=0 THEN OtherModem
  7. x=FRE(0)
  8. FOR j= 1 TO LEN(a$):p$=MID$(a$,j,1)
  9. PRINT p$;:PRINT#1,p$;:NEXT j
  10. a$="":p$="":RETURN
  11.  
  12. OtherModem:
  13. x=FRE(0)
  14. FOR j= 1 TO LEN(a$):p$=MID$(a$,j,1)
  15. PRINT p$;:NEXT j
  16. a$="":p$="":RETURN
  17.  
  18. Answers:
  19. telly=0:t$="":t=0:i$="":ch$="":alter=0:IF rings=0 THEN SomeAnswers
  20. WHILE 1 AND alter<1
  21.   WHILE LOC(1)<>0
  22.     ch$=INPUT$(1,1)
  23.     equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs)
  24.     i$=i$+ch$:equivs=0
  25.     telly=telly+1:IF telly=78 THEN ch$=r$:telly=0
  26.     IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2):telly=telly-1
  27.     IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN alter=3:telly=0
  28.     a$=ch$:GOSUB Modem:ch$=""
  29.   WEND
  30.   ch$=INKEY$:i$=i$+ch$
  31.   a$=ch$:GOSUB Modem
  32.   IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN telly=0:GOTO MoreAnswers
  33.   IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
  34.   ch$="":IF LEN(i$)=0 THEN connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN okp=0:RETURN
  35. WEND
  36. IF i$<>"" THEN MoreAnswers
  37. SomeAnswers:
  38. ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem
  39. IF ch$= CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN MoreAnswers
  40. IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
  41. ch$=""
  42. GOTO SomeAnswers
  43. MoreAnswers:
  44. IF okp<>1 THEN RETURN
  45. IF i$="" THEN ch$="":GOTO Answers
  46. t$=i$:IF LEN(t$)>80 THEN t$=LEFT$(t$,78)+r$
  47. RETURN
  48.  
  49. SeqRead:
  50. ERASE ABCS$:DIM ABCS$(185)
  51. a$=r$+r$+"[>                                K Quits                               <]"+r$+r$:GOSUB Modem
  52. OPEN "I", #3, file$
  53. ReadSeq:
  54. j=0:l=0:k=0:Countl=0
  55. WHILE NOT EOF(3)
  56.   x=FRE(0):j=j+1
  57.   LINE INPUT#3,ABCS$(j):ABCS$(j)=ABCS$(j)+r$
  58. WEND
  59. CLOSE#3:k=j:l=0:Detect=0
  60. WHILE l<k
  61.   l=l+1:a$=ABCS$(l):GOSUB Modem
  62.   CheckSeq:
  63.   t$="":t=0:i$="":ch$="":IF rings=0 THEN SomeCheckSeq
  64.   WHILE LOC(1)<>0
  65.     ch$=INPUT$(1,1):equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs)
  66.     i$=i$+ch$:equivs=0:a$=ch$:GOSUB Modem
  67.   WEND
  68.   IF i$<>"" THEN MoreCheckSeq
  69.   SomeCheckSeq:
  70.   ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem
  71.   OtherCheckSeq:
  72.   IF Detect=1 GOTO MoreCheckSeq
  73.   Countl=Countl+1:IF Countl=24 THEN a$=r$+"More (y,n,c)?":GOSUB A1
  74.   IF Countl=24 THEN MenS$=UCASE$(LEFT$(t$,1)):IF MenS$="N" THEN l=k+1
  75.   IF Countl=24 AND MenS$="Y" THEN Countl=0
  76.   IF Countl=24 AND MenS$="C" THEN Detect=1
  77.   IF Countl=24 AND Detect<>1 THEN Countl=0
  78.   MoreCheckSeq:
  79.   IF i$=CHR$(75) OR i$=CHR$(107) THEN l=k+1
  80. WEND
  81. ERASE ABCS$:DIM ABCS$(185):RETURN
  82.  
  83. A1:
  84. GOSUB Modem:GOSUB Answers:RETURN
  85.  
  86. CheckConTime:
  87. Contime$=TIME$:ChEntTime$=RIGHT$(EntTime$,5):Contime$=RIGHT$(Contime$,5)
  88. Contime=VAL(Contime$):EntTime=VAL(ChEntTime$)
  89. IF Contime-EntTime>30 AND Veru$="000" THEN okp=0:a$=r$+"Time limit exceeded."+r$:GOSUB Modem:RETURN
  90. IF Contime-EntTime>45 AND Veru$="007" THEN okp=0:a$=r$+"Time limit exceeded."+r$:GOSUB Modem:RETURN
  91. okp=1:RETURN
  92.  
  93. Voting:
  94. IF okp<>1 THEN RETURN
  95. GOSUB CheckConTime:IF okp<>1 THEN RETURN
  96. CLOSE#2:OPEN "R", #2, "df1:USER",120
  97. FIELD #2, 1 AS check$,9 AS N1$,15 AS N2$,10 AS Co$,15 AS Adr$,10 AS CI$,10 AS STA$,3 AS AG$,9 AS PAS$,3 AS B1$,3 AS B2$,3 AS B3$,3 AS B4$,3 AS B5$,3 AS B6$,3 AS B7$,3 AS B8$,3 AS B9$,1 AS EM1$,1 AS EM2$,1 AS EM3$,1 AS EM4$,1 AS EM5$,3 AS Valu$
  98. FIELD #2, 117 AS dump$,1 AS VTE1$,1 AS VTE2$,1 AS VTE3$
  99. GET#2,UserID
  100. CLOSE#3:OPEN "I",#3,"df1:Votes/QuestNo"
  101. LINE INPUT#3,QNo$:CLOSE#3:QNo=VAL(QNo$)
  102. MoreVoting:
  103. IF okp<>1 THEN RETURN
  104. GOSUB CheckConTime:IF okp<>1 THEN RETURN
  105. a$=r$+"Voting (? for Menu):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)):meni=VAL(MenS$)
  106. IF meni>=1 AND meni<=QNo THEN zl$="VmT"+MenS$:GOTO Questionaire
  107. IF MenS$="?" THEN file$="df1:Votes/VoteMenu":GOSUB SeqRead:GOTO MoreVoting
  108. IF MenS$="R" THEN Results
  109. IF MenS$="X" THEN ExitVoting
  110. a$=r$+"No Such Command":GOSUB Modem:GOTO MoreVoting
  111.  
  112. Questionaire:
  113. IF Altes$(meni)="1" THEN a$=r$+"Sorry, You've already voted.":GOSUB Modem:GOTO MoreVoting
  114. file$=MenS$+".":j=0
  115. CLOSE#3:OPEN "I",#3,"df1:Votes/"+file$
  116. ERASE TBL$:DIM TBL$(45)
  117. WHILE NOT EOF(3)
  118.   j=j+1
  119.   LINE INPUT#3,TBL$(j)
  120.   Assi(j)=VAL(TBL$(j))
  121. WEND
  122. CLOSE#3:OPEN "I",#3,"df1:Votes/"+zl$
  123. ERASE TBL$:DIM TBL$(45):j=0
  124. WHILE NOT EOF(3)
  125.   j=j+1
  126.   LINE INPUT#3,TBL$(j)
  127. WEND
  128. CLOSE#3:l=0:v=0:Mensl=0:trendy=j
  129. WHILE l<trendy
  130.   l=l+1:v=v+1
  131.   IF v<>4 THEN a$=TBL$(l)+r$:GOSUB Modem
  132.   IF v=4 THEN a$=TBL$(l):GOSUB A1:MenS$=LEFT$(t$,1):Mensl=VAL(MenS$):IF Mensl<1 OR Mensl>4 THEN l=l-1:v=v-1
  133.   IF v=4 AND MenS$="1" THEN Assi(l-3)=Assi(l-3)+1
  134.   IF v=4 AND MenS$="2" THEN Assi(l-2)=Assi(l-2)+1
  135.   IF v=4 AND MenS$="3" THEN Assi(l-1)=Assi(l-1)+1
  136.   IF v=4 AND MenS$="4" THEN Assi(l)=Assi(l)+1
  137.   IF v=4 THEN a$=r$:GOSUB Modem:v=0
  138. WEND
  139. CLOSE#3:j=0:OPEN "O",#3,"df1:Votes/"+file$
  140. WHILE j<trendy
  141.   j=j+1
  142.   a$=STR$(Assi(j)):a$=RIGHT$(a$,LEN(a$)-1)+r$
  143.   PRINT#3,a$
  144.   a$=""
  145. WEND
  146. CLOSE#3:Altes$(meni)="1":GOTO MoreVoting
  147.  
  148. Results:
  149. IF okp<>1 THEN RETURN
  150. GOSUB CheckConTime:IF okp<>1 THEN RETURN
  151. file$="df1:Votes/ResultsMenu":GOSUB SeqRead
  152. a$=r$+"Results for which Question:":GOSUB A1:MenS$=LEFT$(t$,1):meni=VAL(MenS$)
  153. IF meni>=1 AND meni<=QNo THEN zl$="VmT"+MenS$:GOTO MoreResults
  154. GOTO MoreVoting
  155. MoreResults:
  156. file$=MenS$+".":j=0
  157. CLOSE#3:OPEN "I",#3,"df1:Votes/"+file$
  158. ERASE TBL$:DIM TBL$(45)
  159. WHILE NOT EOF(3)
  160.   j=j+1
  161.   LINE INPUT#3,TBL$(j)
  162. WEND
  163. CLOSE#3:j=0:OPEN "I",#3,"df1:Votes/"+zl$
  164. ERASE ABCS$:DIM ABCS$(185)
  165. WHILE NOT EOF(3)
  166.   j=j+1
  167.   LINE INPUT#3,ABCS$(j)
  168. WEND
  169. trendy=j:CLOSE#3:l=0:v=0:k=0
  170. WHILE l<trendy
  171.   l=l+1:v=v+1
  172.   a$=ABCS$(l):GOSUB Modem:a$=""
  173.   IF v=4 THEN a$=r$:GOSUB Modem:a$="":k=k+1:a$="1.) "+TBL$(k):GOSUB Modem:a$=""
  174.   IF v=4 THEN k=k+1:a$="2.) "+TBL$(k):GOSUB Modem:a$=""
  175.   IF v=4 THEN k=k+1:a$="3.) "+TBL$(k):GOSUB Modem:a$=""
  176.   IF v=4 THEN k=k+1:a$="4.) "+TBL$(k):GOSUB Modem:a$=""
  177.   IF v=4 THEN a$=r$:GOSUB Modem:v=0
  178. WEND
  179. GOTO MoreVoting
  180.  
  181. ExitVoting:
  182. LSET VTE1$=Altes$(1)
  183. LSET VTE2$=Altes$(2)
  184. LSET VTE3$=Altes$(3)
  185. PUT#2,UserID
  186. CLOSE#2
  187. RETURN
  188.  
  189. Teflon:
  190. IF teetse=1 THEN a$=r$+"Sorry, not allowed!":GOSUB Modem:okp=1:GOTO Menus
  191. IF teetse=0 THEN ltomr=1:teetse=1:RETURN
  192. RETURN
  193.  
  194.